perm filename TWOCOL.1[DOC,TOB] blob sn#418759 filedate 1979-02-12 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.<< One- and two-column formatting macros.  See PUBMAC.LES[UP,DOC]
C00013 ENDMK
C⊗;
.<< One- and two-column formatting macros.  See PUBMAC.LES[UP,DOC]
.    for documentation >>
.first_line←4;
.last_line←73;
.total_lines←last_line;
.
.if xcribl then start "XGP"
.  page frame total_lines high 82 wide
.  macro twocol;	⊂
.    area text lines first_line to last_line IN 2 COLUMNS 5 APART;
.    cols←2;  ssname←NULL;  place text;  next page;
.    ⊃;
.  macro onecol;	⊂
.    area text lines first_line to last_line;
.    cols←1; ssname←NULL;  place text;  next page;
.    ⊃;
.  if sides=1 then start ODDLEFTBORDER←EVENLEFTBORDER←1030 end
.    else start ODDLEFTBORDER←1030;  EVENLEFTBORDER←930; end;
.  end "XGP"
.else start "TTY"
.  page frame total_lines-1 high 70 wide;
.  macro twocol;	⊂
.    area text lines first_line to last_line IN 2 COLUMNS 5 APART
.    cols←2;  ssname←NULL;  place text;  next page;
.    ⊃;
.  macro onecol;	⊂
.    area text lines first_line to last_line;
.    cols← 1;  ssname←NULL;  place text;  next page;
.    ⊃;
.  end "TTY";
.
.TURN ON "α%"
.MACRO NEXT COLUMN ⊂ start SKIP 200; end ⊃;
.title area heading lines 1 to 3
.twocol;
.
.<< Section numbering and table of contents >>
.
.COUNT SECTION
.macro sskip	⊂skip 200⊃;	<< section skip control >>
.MACRO S(NAME) ⊂ SECNAME←SSNAME←NULL;
.BEGIN sskip;
.  NEXT SECTION; TURN ON "{←"
.  fill NOJUST; SELECT 3
←{SECTION!}.  NAME
.  SELECT 1; SECNAME←"NAME"
.  SEND CONTENTS ⊂ SKIP
∩∩6:{SECTION!}.  NAME→∪∪{PAGE!}
. ⊃
.END fill adjust ⊃
.
.COUNT SUBSECTION IN SECTION PRINTING "!.1"
.macro ssskip	⊂if lines<10 then skip 200;;⊃;	<< subsection skip >>
.MACRO SS(NAME) ⊂ SSNAME←NULL
.BEGIN ssskip;
.  NEXT SUBSECTION; TURN ON "{←"
.  NOJUST; SELECT 3
←{SUBSECTION!}  NAME
.  SELECT 1; SSNAME←SUBSECTION!&"  "&"NAME";
.  SEND CONTENTS ⊂
∩∩2:∂3{SUBSECTION!}  NAME→∪∪{PAGE!}
. ⊃
.END ⊃
.
.COUNT SUB2 IN SUBSECTION PRINTING "!.1"
.macro sssskip	⊂if lines<8 then skip 200;;⊃;	<< subsubsection skip >>
.MACRO SSS(NAME) ⊂
.  NEXT SUB2
.  BEGIN sssskip; TURN ON "{←"
.    INDENT 4,8; NOJUST; SELECT 3
←{SUB2!}  NAME
.    SELECT 1
.    SEND CONTENTS ⊂
∩∩2:∂6{SUB2!}  NAME→∪∪{PAGE!}
. ⊃
.END ⊃
.
.COUNT appendix PRINTING "A";
.macro appskip	⊂skip to column 1⊃;		<< appendix skip >>
.MACRO APP(NAME) ⊂ SECNAME←SSNAME←NULL
.BEGIN appskip;
.NEXT APPENDIX; TURN ON "{←"
.fill adjust; preface 0; SELECT 3
←Appendix {APPENDIX!}
.break
←NAME
.SELECT 1; skip;
.SECNAME←"Appendix "&APPENDIX!; SSNAME←"NAME";
.IF APPENDIX=1 THEN BEGIN
.	SEND CONTENTS ⊂ SKIP
∩∩6:←%3Appendices%1
.     ⊃
.	IF SIDES=1 THEN START EVERY HEADING(%3{SECNAME},{SSNAME},{PAGE!}); END;
.	END
.SEND CONTENTS ⊂ SKIP
∩∩3:{APPENDIX!}.  NAME→∪∪{PAGE!}
. ⊃
.END  ⊃
.
.MACRO CB(TITLE) ⊂ BEGIN TURN ON "←"; SELECT 3
.IF LINES<6 THEN skip 200;
←TITLE

.END ⊃
.
. << Call this macro once at the end of the document >>
.MACRO BACK ⊂ twocol
.begin "back"
.  COUNT PAGE PRINTING "i"
.  IF SIDES=2 THEN START
.	ODD HEADING(,TABLE OF CONTENTS,{PAGE!});
.	EVEN HEADING({PAGE!},TABLE OF CONTENTS,);
.	END
.  ELSE START EVERY HEADING(,%3TABLE OF CONTENTS,{PAGE!}) END;
.
.  PORTION CONTENTS
.  FILL NOJUST CRBREAK TURN ON "%∂←→"
.  turn on "∪" for "#";
.
.  AT "∩∩" LMIN ":" ⊂ IF LINES<LMIN THEN BEGIN
.	skip 200; SELECT 3
∂5Section→Page
.	SKIP;
.	END
.	⊃;

.  INDENT 0,10,3; PREFACE 0; SELECT 3
∂5Section→Page

.  SELECT 1;
.  RECEIVE
.end "back" ⊃;
.
.MACRO FAC ⊂FILL ADJUST COMPACT ⊃
.
.PORTION MAIN
.if sides=2 then start
.    EVEN HEADING({PAGE!},,{SECNAME})
.    ODD HEADING({SSNAME},,{PAGE!})
.    end
.else every heading({Secname},,{PAGE!})
.PLACE HEADING; SELECT 3; TURN ON "{";
.PLACE TEXT; SELECT 1;
.count page to 300;
.fill; adjust; retain; SECNAME←null;